package com.probox.customer.api.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.probox.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 客户账号对象 customer_info_account
 *
 * @author zhusiyu
 * @date 2021-05-25
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("customer_info_account")
@ApiModel(description="客户账号类")
public class CustomerInfoAccount implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 会员账号信息ID
     */
    //默认主键自增
    @ApiModelProperty(value = "会员账号信息ID")
    @TableId(value = "CUSTOMER_ACCOUNT_UID", type = IdType.AUTO)
    private Long customerAccountUid;
    /**
     * 会员ID
     */
    @ApiModelProperty(value = "会员ID")
    @Excel(name = "会员ID")
    private Long customerUid;
    /**
     * 登录账号/openID/手机号码
     */
    @ApiModelProperty(value = "登录账号")
    @Excel(name = "登录账号/openID/手机号码")
    private String accountName;

    /**
     * 性别 1男，0女
     */
    @ApiModelProperty(value = "性别")
    @Excel(name = "性别", readConverterExp = "0=男,1=女,2=未知")
    private String sex;
    /**
     * 国籍
     */
    @ApiModelProperty(value = "国籍")
    @Excel(name = "国籍")
    private String nation;
    /**
     * 省份
     */
    @ApiModelProperty(value = "省份")
    @Excel(name = "省份")
    private String province;

    /**
     * 城市
     */
    @ApiModelProperty(value = "城市")
    @Excel(name = "城市")
    private String city;


    /**
     * 账号昵称
     */
    @ApiModelProperty(value = "账号昵称")
    @Excel(name = "账号昵称")
    private String accountNickName;
    /**
     * 登录密码
     */
    @ApiModelProperty(value = "登录密码")
    @Excel(name = "登录密码")
    private String accountPassword;
    /**
     * 会员头像
     */
    @ApiModelProperty(value = "会员头像")
    @Excel(name = "会员头像")
    private String accountHeadImg;
    /**
     * 注册时间
     */
    @ApiModelProperty(value = "注册时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date regTime;
    /**
     * 注册IP
     */
    @ApiModelProperty(value = "注册IP")
    @Excel(name = "注册IP")
    private String regIp;
    /**
     * 手机号码
     */
    @ApiModelProperty(value = "手机号码")
    @Excel(name = "手机号码")
    private String phone;
    /**
     * 登录时间
     */
    @ApiModelProperty(value = "登录时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "登录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date loginTime;
    /**
     * 登录次数
     */
    @ApiModelProperty(value = "登录次数")
    @Excel(name = "登录次数")
    private Integer loginNumber;
    /**
     * 状态 0锁定/1正常
     */
    @ApiModelProperty(value = "状态")
    @Excel(name = "状态 0锁定/1正常")
    private String accountStatus;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    @Excel(name = "创建人")
    private Long createUser;
    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    @Excel(name = "修改人")
    private Long updateUser;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createDate;
    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateDate;
    /**
     * 平台ID
     */
    @ApiModelProperty(value = "平台ID")
    @Excel(name = "平台ID")
    private Long platformUid;
    /**
     * 账号来源端口 wechat(微信小程序)/ios/android/web(PC商城)/manager(管理员添加)
     */
    @ApiModelProperty(value = "账号来源端口")
    @Excel(name = "账号来源端口 wechat(微信小程序)/ios/android/web(PC商城)/manager(管理员添加)")
    private String sourcePort;
    /**
     * open id
     */
    @ApiModelProperty(value = "open id")
    @Excel(name = "open id")
    private String openId;
    /**
     * union_id
     */
    @ApiModelProperty(value = "union_id")
    @Excel(name = "union_id")
    private String unionId;


    /**
     * 创建人名称
     */
    @ApiModelProperty(value = "创建人名称")
    @Excel(name = "创建人名称")
    private String createName;

    /**
     * 修改人名称
     */
    @ApiModelProperty(value = "修改人名称")
    @Excel(name = "修改人名称")
    private String updateName;

    /**
     * 推荐人ID
     */
    @ApiModelProperty(value = "推荐人ID")
    private Long fromCustomerUid;
}
